// bool, Obj This, Obj other

Hero this;
Ship ship;

this = This.AsHero();
if(!.IsValid()) return false;
ship = other.AsShip();
if(!ship.IsValid()) return false;

if(!ship.IsWaterUnit) return false;
if(.IsEnemy(ship)) return false;
if(ship.IsEnemy(this)) return false;
if(ship.UnitsCount == ship.UnitsMax) return false;  

if(.HasItem("irage_battle")) return false;
if(.HasItem("irage_battle_stand")) return false;
if(.command == "retreat_notai") return false;
if(.command == "retreat_bld_notai") return false;
if(.command == "great_charge") return false;

return true;
